package org.example.intern.entity.common;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonIncludeProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;

@Data
@ApiModel("用户基本信息")
public class SysUser {

    @ApiModelProperty("用户id")
    private String id;

    @ApiModelProperty("头像")
    private String avatar;

    @ApiModelProperty("用户名")
    private String username;

    @JsonIgnore() // 这里是 jackson  注解返回时忽略这个字段
    @JSONField(serialize = false) // 这里是FastJson 注解默认不返回给前端
    @ApiModelProperty("用户密码")
    private String password;

    @ApiModelProperty("邮件地址")
    private String email;

    @ApiModelProperty("性别 0 女 1 男")
    private Integer sex;

    @ApiModelProperty("用户")
    private String introduction;

    @TableField(exist = false) // 非数据库字段, 仅作为前端使用, 且值固定
    @ApiModelProperty("角色信息")
    private List<String> roles;
}
